Portable imaging devices such as bar code readers, optical character readers, digital cameras and the like have come into widespread use in large numbers of retail, industrial and medical applications. Such imaging devices are used to perform routine data entry functions such as pricing, inventory control, etc., with an accuracy and reliability that far exceeds that of manual data entry. These and other advantages, such as high data throughput rates and direct compatibility with data processing devices and systems, assures that imaging devices will become more prevalent in the future. As the use of such devices increases the demands on the devices will increase as well. These demands will dictate that the portable imaging devices of the future read, record and decode ever-increasing quantities and densities of optically encoded data.
Portable imaging devices, such as bar code readers, are known for reading one-dimensional (1D) and two-dimensional (2D) bar code symbols, such as bar coded information in supermarkets, etc. A variety of different bar code symbols are widely known and are currently being used in various applications. For example, 1D bar code symbologies, such as Code 49 and PDF 417, have been developed to allow encoding of large amounts of data. Code 49 symbology is described in U.S. Pat. No. 4,794,239, issued in the name of inventor Allais and PDF 417 symbology is described in U.S. Pat. No. 5,340,786, issued in the name of inventors Paviudus, et al. These symbologies use stacked symbols that partition the encoded data into multiple rows, each including a respective 1D bar code pattern. In operation, all or most of the symbols must be scanned, decoded and then linked together to form a complete message.
In accommodating the need for reading, recording, decoding and processing increasing quantities and densities of data, 2D matrix symbologies have been developed which offer orientation-free scanning and greater data densities and capacities than the 1D counterparts. 2D matrix codes encode dark or light data elements within a regular polygonal matrix, accompanied by graphical finder, orientation and reference structures. For an example of a 2D symbology see MaxiCode as described in detail in the publication “International Symbology Specification—MaxiCode”, by AIM International, Inc.
2D solid state image sensors, such as scanners or charge couple device (CCD) image sensors, are capable of receiving optically encoded data images and converting them to electrical signals. When these image sensors are incorporated with optical imaging systems that provide properly exposed and focused images of their target and with signal processors that include suitable decoding software, these image sensors are able to read data from various types, shapes and sizes of barcodes and other symbols.
Current 2D and 1D/2D discriminating imaging devices require the implementation of a separate, or dedicated, processor and associated memory to accommodate the computationally intensive image capture and decoding processes while a separate main processor is responsible for running the operating system and processing the decoded image data. In most instances, this would require a separate printed circuit board (PCB) to physically house the image capture and decode processor and related hardware in addition to the host PCB that physically houses the separate main operating system processor. As such, information transfer between the image capture and decode processor and the operating system processor require additional switching hardware. Still further, the prior art multiprocessor implementations required serial and parallel transfer capabilities, buffers, UARTS (serial ports), transfer hardware, additional protocols, and may have further required second power supplies, memory blocks and printed circuit boards. Thus, the implementation of dual processors have made for complex devices that require more operating power and more maintenance related to servicing and updating the multiple processor devices. The use of a single processor results in faster processing, fewer errors, more efficiencies, less expense, less power consumption, less heat generation, and requires less space.
A desired imaging device would incorporate a single main processor that would be capable of running the operating system and application program as well as executing the capture and decode program for the image data. An imaging device that has a single processor capable of all of these operations provides a more streamlined and efficient apparatus, and may also use less expensive components. By eliminating from the overall imaging device architecture the need to incorporate a second processor and, in most instances, an associated PCB, the end-user will typically benefit from being provided a device that costs less, is more reliable and less complex. Thus, the invention teaches how to combine the heretofore separate and independent operations mandating multiple microprocessors' memories and transfer interfaces into a single processor capable of multiple operations. Such a combination is not merely the natural consequence of improvements in microprocessor capacity and capabilities because of the necessity to combine separate hardware, software and protocols into a single processor design. The invention teaches how to accomplish all of these disparate tasks with a central processor, and do so in a multi-tasking environment that was not present when using the prior art technique of employing a dedicated (single task) processor to execute the image capture and decode functions.